#!/bin/bash

# 0. 进入脚本所在目录
script_dir=$(dirname "$0")
cd "$script_dir"

# 准备步骤
# -------
# 1. 创建一个 pages 目录
# 2. 先下载第一个页面
# 3. 再下载剩下的页面


# 准备脚本
# -------
mkdir -p pages
curl "https://linuxstory.org/latest/" > "pages/1.html";

for i in {2..416}; do
    if [ -f "pages/$i.html" ]; then
        continue;
    fi
    echo "https://linuxstory.org/latest/page/$i/";
    curl "https://linuxstory.org/latest/page/$i/" > "pages/$i.html";
done


# 使用 Soup 工具提取需要的信息
# -------------------------
echo "" > titles.txt
echo "" > links.txt
echo "" > datetimes.txt

for i in {1..416}; do
    echo -ne "正在处理第 $i/416 页\r"

    cat "pages/$i.html" | \
        soup -i - -m 'article h3[class="post__title typescale-2"] a' >> titles.txt
    cat "pages/$i.html" | \
        soup -i - -m 'article h3[class="post__title typescale-2"] a' --attr href >> links.txt
    cat "pages/$i.html" | \
        soup -i - -m  'article div[class="post__meta"] time' --attr datetime | \
        cut -d 'T' -f 1 >> datetimes.txt
done


# 使用工具合并日期与标题
# ------------------
# 2024-01-31T11:16:00+00:00
# cut -d 'T' -f 1
# 输出 2024-01-31

# 合并日期与标题: [日期] 标题
paste -d '\t' datetimes.txt titles.txt | awk -F'\t' '{printf "[%s] %s\n", $1, $2}' > newtitles.txt

